import type { InsureEnsureStatusCnEnum } from '@/const/enum'

export interface InsureEnsurePlanListDto {
    /**
     * 保司编码
     */
    code: string
    /**
     * 创建时间
     */
    createTime: string
    /**
     * 创建人
     */
    createUserName: string
    /**
     * 投保方案风险等级汇总
     */
    dangerLevel: number[]
    /**
     * 生效方式（1:次日生效  2:即时生效）
     */
    effectType: number
    /**
     * 主键Id
     */
    id: number
    /**
     * 保司表主键Id
     */
    insureCompanyId: number
    /**
     * 保司方案表主键Id（即关联哪个保司方案）
     */
    insureCompanyPlanId: number
    /**
     * 保司方案简称
     */
    insureCompanyPlanName: string
    /**
     * 保单类型（0:灵活保单  1:月单）
     */
    insurePlanType: number
    /**
     * 保险产品（1:日结保  2:长期保  3:团意险保）
     */
    insureType: number
    /**
     * 保司名称
     */
    name: string
    /**
     * 方案编码
     */
    planCode: string
    /**
     * 方案结束时间
     */
    planEndTime: string
    /**
     * 方案简称
     */
    planName: string
    /**
     * 方案名称命名规则（即生成公式）
     */
    planNameRule: string
    /**
     * 方案开始时间
     */
    planStartTime: string
    /**
     * 方案规则Id
     */
    ruleId: number
    /**
     * 方案规则名称
     */
    ruleName: string
    /**
     * 特殊要求补充
     */
    specialRemark: string
    /**
     * 修改时间
     */
    updateTime: string
    /**
     * 更新人
     */
    updateUserName: string

    status: InsureEnsureStatusCnEnum
    
}
// export interface InsureEnsurePlanListDto {
//     /**
//      * 创建时间
//      */
//     createTime: string
//     /**
//      * 投保方案风险等级汇总
//      */
//     dangerLevel: number[]
//     /**
//      * 生效方式（1:次日生效  2:即时生效）
//      */
//     effectType: number
//     /**
//      * 主键Id
//      */
//     id: number
//     /**
//      * 保单类型（0:灵活保单  1:月单）
//      */
//     insurePlanType: number
//     /**
//      * 保险产品（1:日结保  2:长期保  3:团意险保）
//      */
//     insureType: number
//     /**
//      * 保司名称
//      */
//     name: string
//     /**
//      * 方案编码
//      */
//     planCode: string
//     /**
//      * 方案结束时间
//      */
//     planEndTime: string
//     /**
//      * 方案简称
//      */
//     planName: string
//     /**
//      * 方案开始时间
//      */
//     planStartTime: string
// }


export interface InsureEnsurePlanDto {
    /**
     * 方案简称
     */
    planName: string
    /**
     * 保司表主键Id
     */
    insureCompanyId: number
    /**
     * 保险产品（1:日结保  2:长期保  3:团意险保）
     */
    insureType: number
    /**
     * 保司方案表主键Id（即关联哪个保司方案）
     */
    insureCompanyPlanId: number
    /**
     * 风险等级
     */
    // totalDangerLevel: string
    dangerLevel: number[]
    /**
     * 保单类型（0:灵活保单  1:月单）
     */
    insurePlanType: number
    /**
     * 生效方式（1:次日生效  2:即时生效）
     */
    effectType: number
    /**
     * 费用计算方式（1:自然月  2:天数）
     */
    /**
     * 方案规则Id
     */
    ruleId: number
    /**
     * 方案规则名称
     */
    ruleName: string

    calculateFeeType: number
    /**
     * 费用计算天数（-1表示按自然月）
     */
    calculateDayNum: number
    /**
     * 计算保留方式（1:向上取整  2:向下取整  3:四舍五入）
     */
    calculateType: number

    ensureFeeLevel: AddFeeLevelDto[]
    insureCompanyFeeLevel: AddFeeLevelDto[]
    ensureFee?: AddFeeLevelDto[]
    /**
     * 特殊要求补充
     */
    specialRemark: string

    /**
     * 方案开始时间
     */
    planStartTime: string
    /**
     * 方案结束时间
     */
    planEndTime: string


    /**
     * 保司编码
     */
    code?: string
    /**
     * 创建人Id
     */
    createUserId?: number
    /**
     * 方案名称命名规则（即生成公式）
     */
    planNameRule?: string
    status?: number
    id?: number
    canEditAll?: boolean
    feeStartTime?: string
    feeEndTime?: string
    feeId?: number
}

/**
 * AddInsurePlanFee，新增方案保费入参
 */
export interface AddInsurePlanFee {
    /**
     * "方案保费&风险等级关联"集合节点
     */
    feeLevel: AddFeeLevelDto[]
    /**
     * 保司方案表主键Id/投保方案表主键Id
     */
    planId: number
}

/**
 * AddFeeLevelDto，新增"方案保费&风险等级关联"入参
 */
export interface AddFeeLevelDto {
    /**
     * 日保费
     */
    dailyFee: number
    /**
     * 风险等级（3类、4类、5类）
     */
    dangerLevel: number
    /**
     * 月保费
     */
    monthFee: number
}


export interface InsureCompanyListReqDto {
    /**
     * 保司编码
     */
    code?: string
    /**
     * compareTime
     */
    compareTime?: string
    /**
     * 结束时间
     */
    endTime?: string
    /**
     * id集合
     */
    idList?: string[]
    /**
     * 保司表主键Id
     */
    insureCompanyId?: number
    /**
     * 保司方案表主键Id
     */
    insureCompanyPlanId?: number
    /**
     * 保险产品（1:日结保  2:长期保  3:团意险保）
     */
    insureType?: number
    /**
     * 方案编码
     */
    planCode?: string
    /**
     * 方案编码集合
     */
    planCodeList?: string[]
    /**
     * 方案名称
     */
    planName?: string
    /**
     * 方案类型（1:保司方案  2:投保方案）
     */
    planType?: number
    /**
     * 开始时间
     */
    startTime?: string
}



export interface AddFeeReqDto {
    /**
     * 费用计算天数（-1表示按自然月）
     */
    calculateDayNum: number
    /**
     * 费用计算方式（1:自然月  2:天数）
     */
    calculateFeeType: number
    /**
     * 计算保留方式（1:向上取整  2:向下取整  3:四舍五入）
     */
    calculateType: number
    /**
     * 创建人Id
     */
    createUserId: number
    /**
     * 投保方案保费基准价
     */
    ensureFee: AddFeeLevelDto[]
    /**
     * 投保方案表主键Id
     */
    ensurePlanId: number
    /**
     * 方案保费结束时间
     */
    feeEndTime: string
    /**
     * 方案保费开始时间
     */
    feeStartTime: string
    /**
     * 保司方案保费基准价
     */
    insureCompanyFee: AddFeeLevelDto[]
    /**
     * 保司方案表主键Id
     */
    insureCompanyPlanId: number
}

export interface EditFeeReqDto extends AddFeeReqDto {
    /**
     * 方案保费Id
     */
    feeId: number
    id: number
}